package com.liaowei.article.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liaowei.article.model.param.ArticleStatusParam;
import com.liaowei.article.model.param.QueryManageArticleParam;
import com.liaowei.article.model.param.SaveArticleParam;
import com.liaowei.model.domain.Article;
import com.liaowei.model.param.QueryArticleParam;
import com.liaowei.model.vo.ArticleVO;
import com.liaowei.model.vo.UserVO;
import com.liaowei.model.vo.WordCloud;

import java.util.List;
import java.util.Set;

/**
* @author LindaMan
* @description 针对表【wy_article(文章表)】的数据库操作Service
* @createDate 2023-05-06 23:31:37
*/
public interface ArticleService extends IService<Article> {

    // 保存文章信息
    String saveArticle(SaveArticleParam saveArticleParam);

    // 修改文章状态
    String updateStatus(ArticleStatusParam statusParam);

    // 后台管理-分页查询
    IPage<Article> searchManageArticlePage(QueryManageArticleParam articleParam);

    // 查询文章作者
    UserVO searchAuthorByArticleId(Long articleId);

    // 条件分页查询文章列表
    IPage<ArticleVO> searchArticlePage(QueryArticleParam articleParam);

    // 查询文章详细信息
    ArticleVO searchArticleVo(Long articleId,Long userId);

    // 根据id查询文章信息
    Article searchArticleById(Long articleId);

    // 删除文章
    String removeArticleByIdAndUserId(Long articleId,Long userId);

    // 根据userId查询文章数量
    Long searchCountOfArticleByUserId(Long userId);

    // 通过id列表查询文章列表
    List<Article> searchArticleListByIds(List<Long> articleIds);

    // 查询热点搜索词
    Set<WordCloud> searchWordCloudList();

    // 查询文章热门排行
    List<ArticleVO> searchHotArticleList();

    // 查询自己的文章
    List<ArticleVO> searchOwnArticleVOList(Long userId, String title);

    // 查询推荐文章
    List<ArticleVO> searchRecommendArticleVOList();

    // 查询搜索发现--随机取10条
    List<Article> searchDiscoveryArticleList(String title);
}
